/**
 * @file ComDb.h
 * @brief COM端口数据库管理器头文件
 * @details 提供COM端口名称仲裁和管理功能
 */

#ifndef COMDB_H
#define COMDB_H

#include "DriverStruct.h"

/**
 * @brief 检查端口是否正在使用
 * @param pPortName 端口名称
 * @param inUse 输出参数，表示是否正在使用
 * @return 操作是否成功
 */
bool ComDbGetInUse(const char *pPortName, bool &inUse);

/**
 * @brief 同步COM端口数据库
 * @param pFilter 设备枚举过滤器
 */
void ComDbSync(DeviceEnumFilter pFilter);

/**
 * @brief 查询COM端口名称
 * @param pBuf 输出缓冲区
 * @param maxChars 最大字符数
 * @return 实际写入的字符数
 */
DWORD ComDbQueryNames(char *pBuf, DWORD maxChars);

/**
 * @brief 声明COM端口
 * @param pPortName 端口名称
 * @return 操作是否成功
 */
bool ComDbClaim(const char *pPortName);

/**
 * @brief 释放COM端口
 * @param pPortName 端口名称
 * @return 操作是否成功
 */
bool ComDbRelease(const char *pPortName);

/**
 * @brief 验证端口名称是否有效
 * @param pPortName 端口名称
 * @return 端口名称是否有效
 */
bool ComDbIsValidName(const char *pPortName);

#endif // COMDB_H
